Release 10.1A: OpenEdge Development:
Progress 4GL Handbook


Common attribute values for visual objects

There are literally hundreds of different attributes, many of which apply only to a single object type. But several basic ones that you will likely use most often apply to most or all visual objects. This section summarizes a few of these.

Geometry attributes

These attributes affect the size and location of the object in the frame or window:

Appearance attributes

These attributes affect the appearance of the object:

Data management attributes

These attributes affect how to manage data associated with the object:

Relationship attributes

These attributes affect how the object interacts with other objects:

Identifying attributes

These attributes identify characteristics of the object:

You can see most of the object attributes that you can set for an object type in the AppBuilder property sheet for the object, such as the one shown in Figure 8–1 for the Customer.Name fill-in field in the CustOrders window.

Figure 8–1: Property sheet for a fill-in field

The Advanced button takes you to the dialog box shown in Figure 8–2. These are attributes that you might use less often, some of which are mentioned in this chapter.

Figure 8–2: Advanced Properties dialog box

Certain property sheet settings, such as Display and Enable, affect AppBuilder-generated executable statements and preprocessor values rather than the DEFINE statement for the object itself. You’ve seen the effect of the Display and Enable settings already in the code for the AppBuilder-generated enable_UI procedure:

IF AVAILABLE Customer THEN  
     DISPLAY Customer.CustNum Customer.Name Customer.Address Customer.City  
          Customer.State  
       WITH FRAME CustQuery IN WINDOW CustWin. 
   ENABLE BtnFirst BtnNext BtnPrev BtnLast Customer.CustNum Customer.Name  
        Customer.Address Customer.City Customer.State OrderBrowse dTotalPrice  
        dTotalExt dAvgDisc cWorstWH cBestWH  
       WITH FRAME CustQuery IN WINDOW CustWin. 

The AppBuilder also keeps the list of displayed and enabled objects in preprocessor values:

&Scoped-define FIELDS-IN-QUERY-CustQuery Customer.CustNum Customer.Name ~ 
Customer.Address Customer.City Customer.State  
&Scoped-define ENABLED-FIELDS-IN-QUERY-CustQuery Customer.CustNum ~ 
Customer.Name Customer.Address Customer.City Customer.State 

Other property sheet settings for attributes that you cannot set as part of the object definition are set in a series of ASSIGN statements the AppBuilder generates, such as these for the READ-ONLY, PRIVATE-DATA, SELECTABLE, MOVABLE, and RESIZABLE attributes in this example:

ASSIGN  
     BtnFirst:PRIVATE-DATA IN FRAME CustQuery     =  
               "Private data for the first button.". 
ASSIGN  
     cBestWH:READ-ONLY IN FRAME CustQuery         = TRUE. 
ASSIGN  
     cWorstWH:SELECTABLE IN FRAME CustQuery       = TRUE 
     cWorstWH:MOVABLE IN FRAME CustQuery          = TRUE 
     cWorstWH:READ-ONLY IN FRAME CustQuery        = TRUE 
     cWorstWH:RESIZABLE IN FRAME CustQuery        = TRUE. 

As you develop your own applications, you need to keep in mind which attributes you can define in a DEFINE statement, which in a frame definition, and which only in executable statements at run time.


Copyright © 2005 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095